can't mirror objects on other side
I agree, it seems counterintuitive, how SX-1 or &#9096; CtrlM work in this case.

You can always apply a mirror matrix to the object matrix. Simply select the object and execute the following script.

import bpy
import mathutils

ob = bpy.context.object

mat_mirror = mathutils.Matrix.Scale(-1, 4, (1.0, 0.0, 0.0))
ob.matrix_world = mat_mirror @ ob.matrix_world

# For Blender 2.79 and previous, use the * symbol for matrix multiplication.
#ob.matrix_world = mat_mirror * ob.matrix_world


With mathutils.Matrix.Scale(-1, 4, (1.0, 0.0, 0.0)) we construct a matrix scaled -1 along X.