Para que te quede más claro: Los corchetes no tienen uso en MySQL... Sólo si quieres provocar un error de sintaxis (como el que lograste).
Se usan en SQL Server, Access, y alguno que otro. Pero no en MySQL.
Si separo la query, puedo decirte sin dudas que la misma no contiene errores de ningún tipo:
Si PHP te da un error como el que describes sólo puede darse porque no la consulta no devuelva datos, porque no cumple con la condición del WHERE.
Eso puede ser porque no hay un dato como el buscado, porque hay problemas de charset, o bien la variable está vacía. Eso por empezar.