The problem is that you have MY_Obj* and not MY_Obj. So the operator is never called as the type is not of the class MY_Obj but a pointer. So you are sorting by memory-address.
In short - use stl::vector in combination with std::sort instead of Irrlicht array, that allows passing functors. Irrlicht is still missing this.