To chyba będzie Twój problem. Kolumna ma dopuszczalny null.
https://dev.mysql.com/doc/refman/8.0/en/problems-with-null.html
null który jest możliwy dla tego pola z pewnością nie jest problemem gdyż dodałem go dopiero po zaobserwowaniu tej sytuacji.
Ogólnie zawsze staram się sam rozwikłać problem, jednak pierwszy raz od wielu lat utkwiłem na takim drobiazgu i zastanawiam się czy to zmęczenie i czegoś nie widzę,
czy po prostu jakiś wyjątek a ja o nim nie wiem :)
W tej tabeli masz aż 6 wierszy? To po co robic odczyt bloku indeksu i jeszcze jeden odczyt bloku tabelki? Taniej raczej 1 operację I/O zrobić. Dorzucić tam troooochę danych i zobacz jeszcze raz.
W tabeli będzie kilka milionów wierszy (jeszcze nad dzieleniem się nie zastanawiam) , indeks oczywiście z racji tego iż rekordy będą przypisane do użytkowników i będą dosyć często pobierane. 6 wierszy jest obecnie do testu, dla przykładu w innej tabeli gdzie również jest user_id z takim samym indeksem wykonuje takie samo zapytanie i bez problemu używa klucza (również jest tam 6 wierszy).