Que extraño, a mi me funciona correctamente
Código PHP:
Ver original$bar = 'HELLO WORLD!';
$bar = ucfirst($bar); // HELLO WORLD!
$bar = ' HELLO WORLD!';
$bar = ucfirst($bar); // HELLO WORLD!
Como ves, lo más seguro es que tienes espacios en blanco:
Manual Cita: Devuelve una cadena con el primer caracter str en máyusculas, si el caracter es alfabético.
Así que toca que usar trim:
Saludos