The output voltage of an op-amp can't ever go below its ground, or up beyond its positive supply rail. In many cases, the output can't even get near the supply rails, due to functional limitations of the op-amp's design.
Your circuit is a classic instrumentation amplifier design, for which the output voltage is equal to some constant * (V2-V1).
This is fine provided V2 is significantly greater than V1, because the output voltage of the final op-amp is well above ground.
However, if V2 is close to V1, or more negative than V1, then the final op-amp output goes outside its usable range.
In single supply applications we overcome this by biasing signals about some point which isn't ground; typically VCC/2 is used because this allows the maximum possible swing in either direction before hitting the supply rails.
In the case of the instrumentation amplifier, this can be easily achieved by substituting the bottom right resistor R for a pair of resistors, each of value 2R. One of these connects to GND as shown, and the other connects to VCC. These two resistors are equivalent to a single resistor of value R, connected to a point at VCC/2.
If we had a constant voltage supply equal to VCC/2 available, then we could simply connect the single resistor R to this point instead of to ground, but we don't - hence the need for two resistors as an equivalent circuit.
Once you've made this modification, the output should equal VCC/2 for V1=V2, and can move either way depending on the inputs.
You'll still be limited by how close to VCC and GND the LM324 can get. If you need a greater output swing, swap the LM324 for a better op-amp with "rail-to-rail" outputs.