Cada uno de los elementos de un ENUM tiene un valor de índice de base 1. El ordenamiento se hace en base a eso.
Según el manual de Referencia:
Cita: Los valores ENUM se ordenan según el orden en que se enumeran los miembros en la especificación de la columna. (En otras palabras, los valores ENUM se ordenan según sus números de índice.) Por ejemplo, 'a' se ordena antes que 'b' para ENUM('a', 'b'), pero 'b' se ordena antes de 'a' para ENUM('b', 'a'). La cadena vacía se ordena antes de las cadenas no vacías, y los valores NULL se ordenan antes de todos los otros valores de la enumeración. Para evitar resultados inesperados, especifique la lista ENUM en orden alfabético. También puede usar GROUP BY CAST(col AS VARCHAR) o GROUP BY CONCAT(col) para asegurarse que la columna se ordena léxicamente en lugar de por número de índice.