Документація - ваш друг; ви повинні це прочитати!
Він говорить:
IFNULL(expr1,expr2)
Якщо expr1ні NULL, IFNULL()повертається expr1; інакше повертається
expr2.
А потім безліч прикладів. Це еквівалентно використанню трійкового умовного з порівнянням NULLта предметом порівняння як другого операнда; те, що не трапляється використовувати символи, ?і :приїхати туди насправді ні до чого не стосується.
Отже, у вашому випадку:
SELECT IFNULL(`id`, 0) FROM `table`
Якщо ви відчайдушно бажаєте вказати три операнди явно (чому ?!), тоді перейдіть на IF:
SELECT IF(`id` IS NULL, 0, `id`) FROM `table`