Nie można użyć bloku sterującego IF OUTSIDE funkcji. Ma to wpływ na oba Twoje zapytania.
Zamień klauzulę EXISTS w podzapytanie zamiast w funkcji IF
SELECT IF( EXISTS(
SELECT *
FROM gdata_calendars
WHERE `group` = ? AND id = ?), 1, 0)
W rzeczywistości wartości logiczne są zwracane jako 1 lub 0
SELECT EXISTS(
SELECT *
FROM gdata_calendars
WHERE `group` = ? AND id = ?)