foreign key constraint на таблице связи проверяет что твои id на которые ссылается таблица связи существуют в основных таблицах
конкретно в твоем примере role_permissions ты заполняешь до того как заполнить permission
а это значит когда ты вставляешь первую строку в role_permissions cо значениями (1, 1) sql проверяет что в таблице roles есть запись с id: 1 и в таблице permission есть запись с id: 1