Но замени обращение к БД на, например, ожидание сообщения из очереди. И смысл сразу же появится. Ежесекундные запросы к БД - далеко не единственный способ получения новых сообщений.
И даже если БД, то используй in-memory СУБД (начиная с Redis) или MEMORY-таблицу MySQL для небольшого объёма оперативных данных.
В современном PHP есть и асинхронность, и обработка событий. И с их использованием long polling вполне имеет смысл.
запрос идет не раз в секунду. это между запросами к бд пауза по секунде.
сравните с ситуацией когда сайт сам дергает сервер раз в секунду - если запрос обрабатывается, скажем, 0.5 с и таких обращений будет десяток - сервер ляжет.
плюс решение из вопроса проще масштабируется - можно добавить кэш или вынести запросы куда-то еще.