No, X doesn't mangle environment variables. But bash does; specifically, it unsets `PS1` and `PS2` in non-interactive shells:
$ PS1='my PS1' PS2='my PS2' PS3='my PS3' PS4='my PS4' bash -c export |grep PS
declare -x PS3="my PS3"
declare -x PS4="my PS4"
Bash is probably executed somewhere as part of your login sequence. That's guaranteed if your `/bin/sh` is bash and common even if it isn't.
The prompt is a shell setting, meaningful only in interactive shells, so it doesn't make sense to export it to the environment. Set it as part of your shell's interactive initialization file `.bashrc` instead.