HAVING клаузата се използва за филтриране на групи от редове. Позовавате се на min(a) и max(a) което (при липса на GROUP BY клауза) агрегира върху всички a стойности в таблицата, но след това използвайте сравнение с един a стойност.
И така, кой a стойност, която MySQL трябва да използва? Всички други RDBMS, за които знам, биха пуснали грешка в този момент, но MySQL позволява това. От документите
Така че във вашия случай от резултатите, които получавате, изглежда, че в крайна сметка е използвал 1 като скаларна стойност за a но това поведение не е гарантирано и също така би могло да използва 2 или всеки друг съществуващ a стойност.