C'est normal. Il n'utilisera l'index que si le prédicat est suffisamment sélectif pour le justifier.
Il semble que la grande majorité des enregistrements ne soient pas NULL, donc au lieu de les trouver via l'index non clusterisé, il faut alors faire des charges de recherches de signets et d'E/S aléatoires pour récupérer le reste des colonnes à renvoyer, c'est plus rapide et plus efficace pour analysez simplement l'intégralité de l'index clusterisé.
Vous pouvez utiliser FORCESEEK
forcer le comportement que vous dites vouloir. Vous constaterez probablement que le temps pris et les statistiques d'E/S explosent par rapport à l'analyse de l'index clusterisé.
SET STATISTICS IO ON
SELECT * FROM
YourTable WITH (FORCESEEK)
WHERE YourCol IS NOT NULL