Criterios de filtro Groovy en findAll en una lista

Intento construir filtros dinámicos usando findAll en una lista. Tengo una variable que debe incluirse en el filtro solo si no es nula.

 @Test
    void testSample(){
        def list = [ new Employee(age:22, isManager:false), 
                     new Employee(age:23, isManager:true), 
                     new Employee(age:22, isManager:true) ] as Set

        def var = 22;
        String query1 = "it.age == var && it.isManager == true "
        String query2 = "it.isManager == true"

        println list
        println list.findAll { var ? query1 : query2 } // Should give 1 record age = 22 and manager
        var = null;
        println list.findAll { var ? query1 : query2 } // should give 2 records-only manager

    }

Ambos dando todos los récords. ¿Hay alguna forma de lograr esto en una condición sin necesidad de escribir múltiples consultas?

Buscando algunos como a continuación (esto no funciona aunque)

println list.findAll{
                if(var) it.age == var &&
                it.isManager == true
        }

Respuestas a la pregunta(1)

Su respuesta a la pregunta