Si mysql_query devuelve NULL, entonces eso sería un error en PHP. ¿Cómo sabes que en realidad está devolviendo NULL?
Para declaraciones de actualización, mysql_query solo debe devolver VERDADERO o FALSO. Entonces su código de verificación de errores está bien. En cuanto a averiguar qué salió mal, tendrá que llamar a otra función:mysql_error() le daría una descripción general de lo que salió mal. Así que imprime el valor de mysql_error() dentro de tu bloque falso. Me gusta esto:
echo 'failed. SQL Err: '. mysql_error()
Haga eso y probablemente obtendrá una pista de cómo 'se actualizó el registro, pero el valor de retorno es falso'. No debería haber ocurrido.