Можно ли сделать бан лист для сайта, чтобы другие пользователи не могли отправлять личные сообщения вам?
В таблице пользователя добавляем поле: chatOnlyWithFriends: true/false.
Если true - шлём только тем, кто в списке друзей.
Если false - проверяем: кто в бане у пользователя и исключаем их из общего списка. Отправляем всем за исключением забаненных у пользователя.

Таблица банов ("многие-ко-многим"): 
id, initUserID, bannedUserID
Проверяете по ней: кто кого забанил и решаете: отправляем или нет.
Я так понял, он хочет, чтобы каждый пользователь имел свой чёрный список (ban--лист). И мог редактировать его

Гуглите "связь один ко многим". Потребуется отдельная таблица BanList с полями
userID INT      // ID пользователя
bannedID INT    // ID того, кого он забанил
По
SELECT bannedID from BanList WHERE userID='$ID'
можно выбрать ID всех, кого забанил пользователь с userID='$ID'

Используются ID из вашей таблицы реальных пользователей.