Из документации mysqli_query()
Возвращаемые значения ¶
Возвращает FALSE в случае неудачи. В случае успешного выполнения
запросов SELECT, SHOW, DESCRIBE или EXPLAIN mysqli_query() вернет
объект mysqli_result. Для остальных успешных запросов mysqli_query()
вернет TRUE.
относительно вашего вопроса
можно ли отбросить fetch_assoc, если получаю только одно значение?
Как видно из текста справки, данная функция возвращает объект mysqli_result. Далее из него надо получиьт данные, для чего испоьзуется функция fetch*, в переводе fetch означает получить, так что если в ваших планах есть получение строк результата то от этой функции вам не деться никуда.
зы: false там у вас возвращается а не 0