def add_queue(self, chat_id):
with self.connection:
return self.cursor.execute("INSERT INTO `queue` (`chat_id`) VALUES (?)", (chat_id))
После первого срабатывания connection закрывается из-за использования конструкции with.
Соответственно и cursor падает.
Строчку вообще нужно убрать. А connection закрывать вручную в конце.
И еще надо сделать cursor.commit() для сохранения изменений.