BUG (string dtype): fix where() for string dtype with python storage
Currently `where(mask, None)` would silently set None in the underlying values, while we only allow setting a string or np.nan/pd.NA.


xref https://github.com/pandas-dev/pandas/issues/54792
Thanks @jorisvandenbossche 