No puedes pasar el parámetro como 2014-05-01, eso significaría que es una resta aritmética.
En una query las fechas van, al igual que las cadenas de texto, entre apóstrofos, para que la base lo entienda por contexto y las peuda convertir en fecha (al menos MySQL).
Los números son los únicos (junto con el NULL) que van sólos::
Código SQL:
Ver originalSELECT * FROM
$tabla
WHERE ID_proyecto=18
AND MONTH(fecha)=MONTH('2014-05-01')
AND YEAR(fecha)=YEAR('2014-05-01')
ORDER BY fechaDESC