Niestety (w twoim przypadku) zachowanie LEAST zostało zmienione w MySQL 5.0.13 (http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_least ) - używane do zwracania NULL tylko wtedy, gdy wszystkie argumenty są NULL.
Ta zmiana została nawet zgłoszona jako błąd:http://bugs.mysql.com/ bug.php?id=15610 Ale poprawka dotyczyła tylko dokumentacji MySQL, wyjaśniającej nowe zachowanie i brak kompatybilności.
Twoje rozwiązanie było jednym z zalecanych obejść. Innym może być użycie operatora IF:
SELECT IF(Col1 IS NULL OR Col2 IS NULL, COALESCE(Col1, Col2), LEAST(Col1,Col2))