Esto es normal. No usará el índice a menos que el predicado sea lo suficientemente selectivo como para justificarlo.
Parece que la gran mayoría de los registros no son NULOS, por lo que en lugar de encontrarlos a través del índice no agrupado y luego tener que hacer un montón de búsquedas de marcadores y E/S aleatorias para recuperar el resto de las columnas para devolverlo, es más rápido y más eficiente para simplemente escanee todo el índice agrupado.
Puedes usar FORCESEEK
para forzar el comportamiento que dices que quieres. Es probable que descubra que el tiempo necesario y las estadísticas de E/S se disparan en comparación con el análisis de índice agrupado.
SET STATISTICS IO ON
SELECT * FROM
YourTable WITH (FORCESEEK)
WHERE YourCol IS NOT NULL