I suppose it is because PrimeQ is meant as a test for numbers. When given a symbol, such as in PrimeQ[x], it gives False.
PrimeQ
PrimeQ[x]
False
I would use Element[x, Primes], which remains unevaluated when x is a symbol.
Element[x, Primes]
x
Gianluca, your are simply too fast - and with the better solution! Best regards -- Henrik