Bien, estuve revisando la posibilidad de bugs en el funcionamiento de la sentencia, y el problema (considerando que el post original era del foro PHP) parece ser asunto del parseo de PHP y no del código en si.
Según un caso presentado en el 2005 (
Bug #14124 DATEDIFF does not work), el error puede estar produciéndose cuando el PHP genera el string de la sentencia y lo envía. PHPMyAdmin le mete espacios de separación entre el DATEDIFF y el paréntesis.
La solución, según el bug report es ejecutar previamente esta sentencia:
Es decir, hay que cambiar el estado de una variable de MySQL, y luego recién ejecutar la sentencia desde PHP.
El detalle de de los valores del servidor lo encontrarás en:
5.3.2. El modo SQL del servidor
Pruebalo y me dices.