Това е така, защото mysql_query понякога връща булева false (грешка в заявката). Трябва да го проверите:
$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));
}
Кодът по-горе е написан в лош стил и не се препоръчва. Използвайте PDO с изключения в реални проекти.