@camperos ===
you dont need your mess1, which stores the shift modifier event, which is useless;
As for your question that is easy to understand: Shift is a key event that you can capture but it s not a char and if you ask to draw it you get what you have said…I would add that the problem (and the result) is the same for keyEvents of the same kind, like “delete”
So in a more simple way:
void keyPressed() {
background(200, 50, 30);
if(keyCode!=SHIFT){
msg+=key;
}
}