Bueno... habría que ver cómo maneja postgreSQL los valores para campos booleanos (¿1 y 0?, ¿true y false?, ¿t y f?...)
Lo que se devuelve de una consulta, normalmente será por defecto una cadena y no un booleano. Lo mejor es que afines ese if y pongas algo como:
if($var[2] == "true" ) // o "t"... o "1"... o como sea...
Saludos