Sie können den IF-Steuerblock NICHT AUSSERHALB von Funktionen verwenden. Das wirkt sich also auf Ihre beiden Abfragen aus.
Wandeln Sie die EXISTS-Klausel stattdessen in eine Unterabfrage innerhalb einer IF-Funktion um
SELECT IF( EXISTS(
SELECT *
FROM gdata_calendars
WHERE `group` = ? AND id = ?), 1, 0)
Tatsächlich werden boolesche Werte als 1 oder 0 zurückgegeben
SELECT EXISTS(
SELECT *
FROM gdata_calendars
WHERE `group` = ? AND id = ?)