Do guia do administrador do syslog-ng (v 2.0, que é antigo, mas o que você está usando)
When a log statement includes multiple filter statements, syslog-ng sends a message to the destination only if all filters are true for the message. In other words, the filters are connected with the logical AND operator. In the following example, no message arrives to the destination, because the filters are exclusive (the hostname of a client cannot be example1 and example2 at the same time).
Então, isso faz sentido, seria muito complicado e não documentado se funcionasse de outra maneira. Então você vai ter que encontrar outra maneira de realizar o que você está tentando fazer!
Parece que, em geral, a maneira como você deseja excluir um host é usar not host('HOSTNAME') or (host('HOSTNAME') and level(...) )
como seu filtro