BUG: negating pd.Na and `None`
- [x] I have checked that this issue has not already been reported.
- [ ] I have confirmed this bug exists on the latest version of pandas.
- [x] I have confirmed this bug exists on the master branch of pandas.

I don't really know how to describe this or if it is as expected but it seems strange behaviour to me:

```python
>>> df = pd.DataFrame({"a": [pd.NA, -1, None], "b": [np.nan, -1, 1]})
      a     b
0  <NA>   NaN
1    -1  -1.0
2  None   1.0

>>> print(df.dtypes)
a    object
b   float64

>>>print(df * -1)
     a    b
0  NaN  NaN
1    1  1.0
2  NaN -1.0

>>> print((df * -1).dtypes
a    object
b   float64

>>> print(-df)
TypeError: bad operand type for unary -: 'NoneType'
```
I guess there are two things here:
 1) `(-df)` is not the same as `(df * -1)`
 2) the operation keeps `dtype` as `object` but the `<NA>` and `None` are converted to `NaN` display