Quale errore?
Cmq controlla che $cat venga ricevuta.
metti echo $cat; prima della query anzi mettila anche prima della if.
Questa degli echo è la migliore tecnica di debug.
Se ne ricevi il valore corretto significa che l'errore è nella if o nella query