For anyone else who stumbles upon this question, there is another potential cause.
I know you believe you've already found your answer but with prefork you should see the same thing either way you look at it's processes. You must not have been using prefork.
This is why:
http://httpd.apache.org/docs/2.4/mod/prefork.html
This
Multi-Processing Module (MPM) implements a non-threaded, pre-forking
web server.
A different explanation that I've run into
Loading the prefork module before the configuration options works, but if you load it after it seems to load some defaults instead, rendering your IfModule directive inert. You will likely only see this on a customized apache config, as distributions would have it setup correctly to start.
Works - configuration is applied
LoadModule mpm_prefork_module /usr/lib/apache2/modules/mod_mpm_prefork.so
<IfModule mpm_prefork_module>
StartServers 1
MinSpareServers 1
MaxSpareServers 0
ServerLimit 4
MaxClients 4
MaxRequestsPerChild 4000
</IfModule>
Doesn't work - configuration has no effect
<IfModule mpm_prefork_module>
StartServers 1
MinSpareServers 1
MaxSpareServers 0
ServerLimit 4
MaxClients 4
MaxRequestsPerChild 4000
</IfModule>
LoadModule mpm_prefork_module /usr/lib/apache2/modules/mod_mpm_prefork.so