Как получить роль дискорд через её id?
В принципе суть ошибки понятна.
В принципе да, но не вам. В событие on_message приходит объект Message а не Context. И  у объекта Message нет атрибута message (зато сразу есть guild).

Перестаньте путать сами себя пихая нейминг переменных не соответствующий тому что в этой переменной находится, пользуйтесь принтами или отладкой чтобы понять тип имеющихся данных и используйте документацию чтобы прочитать как с этим типом работать.
role = ctx.guild.get_role(id_role)

Вопрос решён?