Индекс не может изменять семантику запроса, это инструмент оптимизации, а оптимизация предполагает неизменный результат. Ты предлагаешь фичу, которая бы выдавала другую выборку. Ну или я вообще не понял, что ты хочешь. Конечно такое невозможно. Ну возьмёт от этот индекс с b = ''. Но в результаты первого запроса попадают и те строки, у которых b <> ''. Как их прикажете находить?