Lo mas seguro es ke el path del htpasswd este mal en el htaccess, revisa el log de errores de tu servidor para ver si es eso, y asegurate colocar bien el path del archivo en el servidor como por ejemplo:
/home/user/public/etc etc etc
Para saber el path, crea un archivo y usa esto:
Código PHP:
<?php
echo $_SERVER['DOCUMENT_ROOT'];
?>
Por seguridad, coloca el htpasswd fuera del folder publico :)