В обоих условиях операторов if используется оператор запятой
Второе условие эквивалентно может быть переписано как
if( ( a == 1 ), 2)
Значением оператора запятой является значение второго операнда. Таким образом, условие во втором операторе if всегда будет иметь значение true, потому что 2 не равно 0.
Условие в первом операторе if может быть переписано как
if(a == 2)
, потому что первый выражение (целочисленная константа 1) оператора запятой не имеет никакого эффекта.
Таким образом, условие оператора if оценивается как истинное, только когда a равно 2.