Jeśli mysql_query zwróciłby NULL, byłby to błąd w PHP. Skąd wiesz, że faktycznie zwraca NULL?
W przypadku instrukcji aktualizacji mysql_query powinien zwracać tylko TRUE lub FALSE. Więc twój kod sprawdzania błędów jest w porządku. Aby dowiedzieć się, co poszło nie tak, będziesz musiał wywołać inną funkcję - mysql_error() da ci informację o tym, co poszło nie tak. Więc wypisz wartość mysql_error() wewnątrz twojego fałszywego bloku. Tak:
echo 'failed. SQL Err: '. mysql_error()
Zrób to, a prawdopodobnie dostaniesz wskazówkę, jak „rekord został zaktualizowany, ale wartość zwracana jest fałszywa”. To nie powinno się wydarzyć.