You can create a covering index on the following columns (message_type_id, hidden, message_id). Try out different order of columns in the index: that might make some difference.
I would rather not use a filtered index: it is quite likely that the optimizer would fail to use it.