BitFieldListFilter seems to filter based on "exact", as opposed to a bitwise operation. So when you select the third item (mask=4), you essentially get this:
Which will not return the desired result. The queryset() method should be overridden in order to perform the correct bitwise operation when filtering.