Coincido con Wkay...
Código PHP:
$pass= md5('$pass1');
En la parte del código donde almacenas el hash en la DB estás calculando a "$pass" (b148e7f41fdc3be4b14e8d17e068bbad) y no al valor de $pass.
En cambio en la validación del login si estás calculando el hash a $pass si la contraseña fuera 123456 el hash sería e10adc3949ba59abbe56e057f20f883e y nunca validaría contra el almacenado para ese usuario.