Po prostu wrzucając to do mieszanki możliwych przyczyn, wpadłem na to, gdy kolumna tabeli referencyjnej miała ten sam „typ”, ale nie miała tego samego podpisu.
W moim przypadku przywoływana kolumna tabeli była TINYINT UNSIGNED, a moja kolumna tabeli odniesienia to TINYINT SIGNED. Wyrównanie obu kolumn rozwiązało problem.