Te explico lo que entendí en este momento.
 
Cuando creas un usuario, esta información se almacena realmente en la tabla pg_authid. pg_user es solo una vista a esta tabla. Y postgresql por dentro solo pone unos asteriscos a este campo. Por lo que la vista pg_user no te servirá para autenticar usuarios. 
Acabo de leer en la documentación de postgresql (cerré la ventana y ahora no la encuentro 

) que la forma como almacena los password al crear usuarios es 'contraseñausuario' en md5.  Por ejemplo: para el usuario user_daniel con contraseña password_daniel, el almacenamiento se hace md5('userdanielpassworddaniel'). 
Sabiendo esto... hice una prueba creando un usuario:    
Código SQL:
Ver original- CREATE USER danielito WITH PASSWORD 'danielito'; 
reviso la tabla pg_authid   
Código SQL:
Ver original- postgres=> SELECT rolname,rolpassword FROM pg_authid; 
-    rolname   |             rolpassword 
- -------------+------------------------------------- 
-  postgres    | md5f8190ea2a42cea0c1ebde86b5291b2fe 
-  creft_admin | md550e1c958f80fa60ccf9dd6b975d7f85c 
-  danielito   | md5e4b43e3f991f4d922f78a0fbb3d74052 
- (3 filas) 
Fijate que el campo password todos empiezan por md5. 
hago esta prueba   
Código SQL:
Ver original- postgres=> SELECT MD5('danielito'); 
-                md5 
- ---------------------------------- 
-  f3e399a7288dc9c4dd6ab228d0e30c77 
- (1 fila) 
Nada que ver con el password. 
Según el apartado donde mencionan la forma que postgresql almacena las contraseñas hago está prueba:   
Código SQL:
Ver original- postgres=> SELECT MD5('danielitodanielito'); 
-                md5 
- ---------------------------------- 
-  e4b43e3f991f4d922f78a0fbb3d74052 
- (1 fila) 
Está si me da el password real. 
 
 
Solo le hace falta la palabra md5 al principio. 
Hacemos está consulta:   
Código SQL:
Ver original- postgres=> SELECT rolname,rolpassword  
- FROM pg_authid WHERE rolpassword = 'md5' || MD5('danielitodanielito'); 
-   rolname  |             rolpassword 
- -----------+------------------------------------- 
-  danielito | md5e4b43e3f991f4d922f78a0fbb3d74052 
- (1 fila) 
Y funciona. 
En pocas palabras y después de tanta chachara.. 
Para solucionar tu problema, la cosa sería:    
Código PHP:
Ver original- pg_query("SELECT rolname FROM pg_authid WHERE rolname='usuario1' AND rolpassword = 'md5' || md5('mipaswordusuario1')"); 
esto es según el ejemplo que pones. 
Gracias a tu pregunta aprendí algo nuevo hoy. 
 
 
saludos