How about looking at configuration.h in your Marlin version. Around line 360 is this define:
#define min_software_endstops false // If true, axis won't move to coordinates less than HOME_POS.
If this is set to true it won’t drive the steppers to less than zero. Right?