Você está realizando uma inserção na tabela
events
com um valor sendo colocado na coluna event_cat
. Esse valor ainda não existe na tabela
categories
na coluna cat_id
. E você disse que deve. Portanto, o mecanismo de banco de dados diz que não fará isso. É obedecer fielmente às suas ordens.