Zde přímo cituji dokumentaci PHP:
Při použití UPDATE nebude MySQL aktualizovat sloupce, kde je nová hodnota stejná jako stará hodnota. To vytváří možnost, že mysql_affected_rows() se ve skutečnosti nemusí rovnat počtu odpovídajících řádků, ale pouze počtu řádků, které byly doslova ovlivněny dotazem.
Takže ve vašem případě mysql_affected_rows() vrátí 0, když UNIX_TIMESTAMP() vrátí stejnou hodnotu (například dva požadavky od stejného klienta ve stejnou sekundu).