Como dice Keysher,
mysql_query ejecuta la consulta y da FALSE solo en caso de error. Lo que tenes que hacer es algo así: Código PHP:
$strSQL = "SELECT * FROM ... WHERE xxx=1";
$result = mysql_query($strSQL)or die(mysql_error());
if($rs = mysql_fetch_assoc($result) ) {
#Hay asignacion a $rs
}else{
#No resultados
}
Ojo, no es que
mysql_num_rows esté mal, pero para el caso del ejemplo dado no me parece correcto usarlo.
Edit: El manual siempre es el mejor aliado:
http://ar2.php.net/mysql_query