BUG: `Styler.hide_columns` fails when not sparsifying
### 

- [X] I have checked that this issue has not already been reported.

- [X] I have confirmed this bug exists on the [latest version](https://pandas.pydata.org/docs/whatsnew/index.html) of pandas.

- [X] I have confirmed this bug exists on the master branch of pandas.


### Reproducible Example

```python
pd.options.styler.sparse.columns=False

midx = MultiIndex.from_product([[1, 2],["a", "a", "b"]], names=["zero", "one"])
df = DataFrame(9, index=midx, columns=midx)
styler = df.style.hide_columns((1, "a"))
styler
```


### Issue Description

![Screen Shot 2021-09-08 at 20 40 49](https://user-images.githubusercontent.com/24256554/132566563-72ba3346-e37b-4ea3-91a2-759827b7bfc7.png)


### Expected Behavior

Columns are hidden in the header row

### Installed Versions

<details>

Replace this line with the output of pd.show_versions()

</details>
