This is curious. I trust you have ascertained that if you play 'x' or '-x' on its own that it's audible from only a single loudspeaker? Do this to test channel two:
sound([zeros(size(x)), -x], Fs);
If your signal actually coming out of both loudspeakers, then you've got a crosstalk problem.
2) Check that your OS level system audio isn't mixing the two channels together (i.e., that you've enabled 'mono' or some kind of cross talk cancellation in the sound preferences).
3) Your audio interconnects (the physical cables) could be damaged or not plugged in properly resulting in channel bleed that in the case of 180 out-of-phase signals would severely attenuate or eliminate the summed signal.
