Cita: quien lo pensaria siendo que DATE_FORMAT fue creada para manejas fechas.
En realidad DATE_FORMAT() en MySQL tiene por objeto
convertir una fecha en una cadena de texto con un determinado formato, pero no es el modo adecuado de manejar los cálculos de fechas... Para eso hay muchas otras funciones que sí son específicas.
Puntualmente, en tu caso, el DATE_FORMAT es superfluo y sólo le agrega ineficiencia. Para tomar las fechas, sin horas, loque debes hacer es usar CURDATE():