Ну так у тебя второй запрос запршивает всех пользователей, без условия.
А вообще приведённый код не имеет смысла и не должен работать вообще никак.
for i in cursor.fetchone("SELECT ID FROM user_info WHERE RANK = '1'"):
Ты перебираешь столбцы в первой строке (fetchone), для которой RANK = '1'. Это при том, что запрос возвращает тебе только один столбец - ID. А ещё метод fetchone() не принимает параметров. Ты пропустил вызов execute()?
Потом ты почему-то берёшь 0й символ этого столбца. Если он равен 1 (а он не будет равен 1, так как это символ, а не число).
Потом ты перебираешь всех пользователей, и отправляешь им сообщения (при этом у тебя в вызове send_message() две опечатки - в имени переменной и незакрытая скобка).
А ещё у тебя отступы кривые - почему for i с отступом?
В общем, по такой бредятине понять, в чём дело, нереально.