Pelo que posso ver no exemplo, você não inseriu nada na tabela de projetos para realizar uma atualização ou exclusão em cascata.
Eu sugiro como um exemplo melhor para demonstrar o comportamento que você procura que você execute o seguinte, depois de executar as etapas acima:
insert into projects values (1,1);
select * from projects;
update location set id = 2 where id = 1;
select * from projects;
O que você deve acabar vendo, é que inicialmente o location_id na linha dos projetos inseridos será igual a 1, então após a atualização do location, o location_id nos projetos deve mudar para 2. Isso demonstra que a mudança no id do local table foi em cascata para atualizar o campo location_id da linha na tabela de projetos.