Editar: ¿Qué versión de MySQL estás usando? Funciona bien en 5.0.22 al menos. Acabo de ejecutar esta consulta. ver aquí
mysql> SELECT TIME_TO_SEC(TIMEDIFF('2000:01:01 00:00:00', '2001:01:01 00:00:00'));
+---------------------------------------------------------------------+
| TIME_TO_SEC(TIMEDIFF('2000:01:01 00:00:00', '2001:01:01 00:00:00')) |
+---------------------------------------------------------------------+
| -31622400 |
+---------------------------------------------------------------------+
1 row in set (0.00 sec)
ver aquí ? Puede ser un problema de truncamiento porque el intervalo de tiempo es mucho más pequeño que la diferencia de fechas que tiene.
Respuesta original
Usa esto
SELECT TIMESTAMPDIFF(SECOND,'2000:01:01 00:00:00', '2001:01:01 00:00:00');
+--------------------------------------------------------------------+
| TIMESTAMPDIFF(SECOND,'2000:01:01 00:00:00', '2001:01:01 00:00:00') |
+--------------------------------------------------------------------+
| 31622400 |
+--------------------------------------------------------------------+
El problema es que estás tratando de convertir un tiempo negativo en tiempo en segundos. Intercambiar las variables hará el trabajo.
SELECT TIME_TO_SEC(TIMEDIFF('2001:01:01 00:00:00','2000:01:01 00:00:00'));
+--------------------------------------------------------------------+
| TIME_TO_SEC(TIMEDIFF('2001:01:01 00:00:00','2000:01:01 00:00:00')) |
+--------------------------------------------------------------------+
| 31622400 |
+--------------------------------------------------------------------+