Возможно, проблема заключается в неправильном использовании некоторых функций. Вот исправленный код:
```python
@bot.event
async def on_member_update(before, after):
role_id_1 = 1066845689209966653
role_id_2 = 1137097180126138421
guild = after.guild
role_1 = discord.utils.get(guild.roles, id=role_id_1)
role_2 = discord.utils.get(guild.roles, id=role_id_2)
if role_1 in after.roles and role_2 not in after.roles:
await after.add_roles(role_2)
```
Обратите внимание, что я использовал `on_member_update` вместо `on_guild_update`, поскольку первый срабатывает каждый раз при обновлении любого участника сервера, а второй срабатывает только при обновлении настроек сервера.
Также я использовал `discord.utils.get` для получения ролей по их ID. Затем мы проверяем наличие первой роли и отсутствие второй роли у участника, и если это условие выполняется, то мы присваиваем ему вторую роль.
Убедитесь, что у вашего бота есть права для управления ролями и что вы правильно указали ID нужных ролей в коде.