BUG: MultiIndex.from_tuples() fails to infer dtype from nan-only values from an index
- [x] I have checked that this issue has not already been reported.

- [x] I have confirmed this bug exists on the latest version of pandas.

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

---

#### Code Sample, a copy-pastable example

```python
In [23]: df2 = pd.DataFrame({'a': [np.nan, 1, 2, 1], 'b': [1, 1, 2, 1], 'd': [np.nan, np.nan, np.nan, np.nan], 'c': [1, 1, 1, 1]}) 

In [24]: df2.dtypes

Out[24]: 
a    float64
b      int64
d    float64
c      int64
dtype: object

In [29]: s2 = df2.groupby(['a', 'b', 'd'], dropna=False)['c'].sum()                                                                                                                                
In [30]: s2.index                                                                                                                                                                                  
Out[30]: 
MultiIndex([(1.0, 1, nan),
            (2.0, 2, nan),
            (nan, 1, nan)],
           names=['a', 'b', 'd'])

In [31]: s2.index.get_level_values(2).dtype                                                                                                                                                        
Out[31]: dtype('float64')

In [32]: pd.MultiIndex.from_tuples(s2.index)                                                                                                                                                       
Out[32]: 
MultiIndex([(1.0, 1, nan),
            (2.0, 2, nan),
            (nan, 1, nan)],
           )

In [34]: pd.MultiIndex.from_tuples(s2.index).get_level_values(2).dtype                                                                                                                             
Out[34]: dtype('O')
```

#### Problem description

When a `MultiIndex` is re-created from another `MultiIndex` which contains a nan-only column by using `.from_tuples()`, the dtype of the nan-only level is `object` when it should be `float64`.

As a workaround, the dtype can be inferred correctly when the original index is wrapped in a `tuple`:
```python
In [35]: pd.MultiIndex.from_tuples(tuple(s2.index)).get_level_values(2).dtype                                                                                                                      
Out[35]: dtype('float64')
```

This problem also doesn't occur when there is at least one non-nan value in the index column:
```python
In [36]: df3 = pd.DataFrame({'a': [np.nan, 1, 2, 1], 'b': [1, 1, 2, 1], 'd': [np.nan, np.nan, np.nan, 1], 'c': [1, 1, 1, 1]})
In [37]: pd.MultiIndex.from_tuples(df3.groupby(['a', 'b', 'd'], dropna=False)['c'].sum().index).get_level_values(2).dtype
Out[37]: dtype('float64')
```


#### Expected Output
The dtype is inferred correctly even without wrapping the source index into a tuple.

#### Output of ``pd.show_versions()``

<details>

INSTALLED VERSIONS
------------------
commit           : 2a7d3326dee660824a8433ffd01065f8ac37f7d6
python           : 3.8.5.final.0
python-bits      : 64
OS               : Darwin
OS-release       : 19.6.0
Version          : Darwin Kernel Version 19.6.0: Thu Jun 18 20:49:00 PDT 2020; root:xnu-6153.141.1~1/RELEASE_X86_64
machine          : x86_64
processor        : i386
byteorder        : little
LC_ALL           : None
LANG             : en_AU.UTF-8
LOCALE           : en_AU.UTF-8

pandas           : 1.1.2
numpy            : 1.19.2
pytz             : 2020.1
dateutil         : 2.8.1
pip              : 20.1.1
setuptools       : 46.4.0
Cython           : None
pytest           : None
hypothesis       : None
sphinx           : None
blosc            : None
feather          : None
xlsxwriter       : None
lxml.etree       : None
html5lib         : None
pymysql          : None
psycopg2         : None
jinja2           : None
IPython          : 7.18.1
pandas_datareader: None
bs4              : None
bottleneck       : None
fsspec           : None
fastparquet      : None
gcsfs            : None
matplotlib       : None
numexpr          : None
odfpy            : None
openpyxl         : None
pandas_gbq       : None
pyarrow          : None
pytables         : None
pyxlsb           : None
s3fs             : None
scipy            : None
sqlalchemy       : None
tables           : None
tabulate         : None
xarray           : None
xlrd             : None
xlwt             : None
numba            : None

</details>
