Bug in Series constructor returning wrong missing values
- [x] closes #43017
- [x] xref #43018 (if the reindex case is ok, then this is done too)
- [x] tests added / passed
- [x] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing.html#code-standards) for how to run them
- [x] whatsnew entry

This ensures consistency with the DataFrame constructor
thanks @phofl  @phofl we have had reports regarding both these cases. Is the new behavior now consistent?

```python
import pandas as pd

print(pd.__version__)
s = pd.Series(dtype="int", index=[0])
print(s)
s2 = pd.Series(dtype="bool", index=[0])
print(s2)
```
```
1.3.5
0    0
dtype: int64
0    False
dtype: bool
```
```
1.4.1
0   NaN
dtype: float64
0    True
dtype: bool
```

It appears to me (and maybe others from the issues) that the changes are confusing.

We have changed the `int` case and and instead create a `float` array saying that the missing value cannot be held in a integer array and yet for the bool case we continue to keep the bool dtype even though we cannot represent a missing value in a boolean array?

I appreciate that `int(np.nan)` raises `ValueError: cannot convert float NaN to integer` and `bool(np.nan)` is `True` but the users are not specifying `np.nan`, they are not supplying data. I wonder whether we ought to revert this until we change the constructors to use nullable dtypes? >  I wonder whether we ought to revert this until we change the constructors to use nullable dtypes?

no opinion on the reversion, but i advise against the implicit assumption that constructors are going to default to nullable dtypes.  support has improved, but its still a mess.