No puede agregar una columna NOT NULL a una tabla que tiene más de cero filas, cuando la columna está restringida a valores que coinciden con los de la tabla principal y, sin embargo, solo tiene valores NULL porque es una columna nueva, despoblada y sin DEFAULT .
La solución es hacerlo por etapas:agregue la columna, pero no la declare NOT NULL, y no declare la clave externa todavía.
ALTER TABLE boys
ADD COLUMN toy_id INT;
Luego complételo con datos válidos que coincidan con algunos valores en su tabla de juguetes.
UPDATE boys SET toy_id = ...;
Luego modifique la columna para que NO sea NULL y cree la restricción:
ALTER TABLE boys MODIFY COLUMN toy_id INT NOT NULL,
ADD CONSTRAINT toys_toy_id_fk
FOREIGN KEY(toy_id)
REFERENCES toys(toy_id);