Wykonujesz wstawianie do tabeli events z wartością umieszczaną w kolumnie event_cat .
Ta wartość nie istnieje już w tabeli categories w kolumnie cat_id .
A ty powiedziałeś, że musi. Więc silnik db mówi, że tego nie zrobi. Wiernie wypełnia Twoje rozkazy.