Efficiency of SparseArray.__getitem__(SparseArray[bool])
This currently densifies:

https://github.com/pandas-dev/pandas/blob/56d8e789155231b04131c6bf4674971ec3f38f95/pandas/core/sparse/array.py#L651-L659

I haven't investigated it, but we should be able to do a boolean mask as an
intersection sp_values on `self` and `key`. If `key` is `SparseDtype[bool, False]`
(i.e. False is the fill_value) this should be a lot faster.