BUG: loc.setitem modifying values with empty indexer
- [x] closes #45981 (Replace xxxx with the GitHub issue number)
- [x] [Tests added and passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#writing-tests) if fixing a bug or adding a new feature
- [x] All [code checks passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit).
- [x] Added [type annotations](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#type-hints) to new arguments/methods/functions.
- [x] Added an entry in the latest `doc/source/whatsnew/vX.X.X.rst` file if fixing a bug or adding a new feature.

Thanks @phofl  I have some code that broke between version 1.4.4 and 1.5.0. I was wondering if this merge will fix it. The code is essentially doing:

```python
import pandas as pd

df = pd.DataFrame({
    "A": [],
    "B": []
}).astype('str')

df.loc[df['A'].str.contains('STUFF'), ['A']] = df['A'] + '-' + df['B']
 ```
 
 In 1.4.4 it is a no-op but in 1.5.0 it fails with `ValueError: shape mismatch: value array of shape (0,) could not be broadcast to indexing result of shape (0,1)`. You can check your code on our nightly builds 