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.