Оба решения так себе.
В таблице пользователей, которая, вероятно, у вас уже существует, сделайте числовое поле unread_messages_count с количеством непрочитанных сообщений, которое обновляйте, когда кто-то пишет пользователю новое сообщение или сам пользователь читает непрочитанное ранее сообщение.
В таблице сообщений сделайте поле is_read (true/false), на которое повесьте индекс, так вы сможете определить, какие сообщения в данный момент не прочитаны.
Держать список ID через запятую в одном поле неэффективно и бессмысленно.