C'est parce que mysql_query renvoie parfois un booléen faux (erreur de requête). Vous devez le vérifier :
$amn = mysql_query("SELECT * FROM `Messages` WHERE to_user='$usr' AND read='0'");
if($amn === false) {
var_dump(mysql_error());
}
else {
print_r(mysql_num_rows($amn));
}
Le code ci-dessus est écrit dans un mauvais style et obsolète. Utilisez PDO avec des exceptions dans des projets réels.