Você não pode adicionar uma coluna NOT NULL a uma tabela que tem mais de zero linhas, quando a coluna está restrita a valores que correspondem aos da tabela pai e ainda tem apenas valores NULL porque é uma coluna nova e não preenchida sem DEFAULT .
A solução é fazer isso em etapas:adicione a coluna, mas não a declare NOT NULL e não declare a chave estrangeira ainda.
ALTER TABLE boys
ADD COLUMN toy_id INT;
Em seguida, preencha-o com dados válidos que correspondam a alguns valores em sua tabela de brinquedos.
UPDATE boys SET toy_id = ...;
Em seguida, altere a coluna para NOT NULL e crie a restrição:
ALTER TABLE boys MODIFY COLUMN toy_id INT NOT NULL,
ADD CONSTRAINT toys_toy_id_fk
FOREIGN KEY(toy_id)
REFERENCES toys(toy_id);