Si conocen algun tipo de forma para arreglar esto os lo agradezco. Estoy intentando arreglarlo desde el apartado de php pero desde ahi lo veo mas complicado.
Ps más bien, a mi me parece una tontera hacer un consulta muy general para estos casos. Los mejor sería sacar una consulta a medida desde PHP.
Si el campo local siempre lleva un tipo de local, que no sea vacío, sería (como te comentan arriba):
SELECT * FROM extras WHERE YEAR(fecha) = '2014' AND LOCAL IS NOT NULL AND usuario = 'Santi'
Tal vez hasta te interese agruparlo:
SELECT * FROM extras WHERE YEAR(fecha) = '2014' AND LOCAL IS NOT NULL AND usuario = 'Santi' GROUP BY LOCAL
Lo mismo aplica para la otra variable. El problema de hacer esto, es que a nivel de código deberás identificar que sentencia llamar.