Si hay variables vacías sencillamente no deberías incluirlas en tu consulta, ¿no te parece lógico?
Debes ir armando la consulta conforme tengas variables, no puedes obviar ninguna y definitivamente no debes incluirla si no está definida.
Es decir, la solución no consiste en "hackear" la consulta de SQL, consiste en armar la consulta lógicamente con PHP para que siempre obtengas SQL bien formado y válido.