Op amp only getting half wave output on dual power supply
This is already said by others, but to be conductive your N-mosfets (see NOTE1) need gate voltage which is few volts above what's at the cathode. The upper mosfets get only what's available from the opamp power supply minus about 1V drop in the opamp. This can work only if your bridge supply voltage is several volts lower than the +supply voltage for opamps. Q2 and Q4 could be driven properly if the frequency is usable for opamps and the mosfets do not get fried due too high Vgs.

Find some proven circuits. It's useless to replace a wheel with a rectangle. Driving gates generally need more complex solutions than yours. Having only N-mosfets make things twice complex. You must use boostrapping or some other method to rise the voltage above the bridge supply voltage. The most popular solution is to have P-mosfets as the upper halves and drive them with a transistor which can accept the control signal against GND like this:



Search for mosfet H-bridge for Arduino!

NOTE1: The arrow in your mosfet symbol is taken from the symbol of a P-channel device. I think you have still intended these to be N-channel mosfets.