-1 is of type signed integer, so assigning it to signed char will truncate is, thus the warning.
You can cast is explicitly to a signed char:
myThing = (signed char) -1;
Yes, this is very annoying, and it will break the code should you change the type of the myThing.
Some compilers support typeof() function, but unfortunately the XC8 doesn't support that.
However, there is a better way to do it:
typedef signed char myThing_t;
myThing_t myThing;
myThing = (myThing_t) -1;