Ryszard,
Thanks for the report. That is rather clumsy indeed -- what happens is that the libary sends the start of a message to the server, and then raises an error when it tries to send the list as a string. After such an error, it will try to re-synchronize the connection, so that it can be used again without reconnecting, but a half-sent message puts the connection in such a broken state that it can not be re-synchronized -- hence the hanging you saw, the server wasn't responding anymore.
I pushed a simple patch that uses check-type to make sure queries (and query names) passed to the cl-postgres functions are string values.
Cheers, Marijn