BUG: .str.cat for all-na corner case
A corner case that wrongly casts to FloatIndex if the result is all-na (e.g. due to alignment)
```
import pandas as pd
>>> idx = pd.Index(['a', 'b', 'c'])
>>> idz = pd.Index(['d', 'e', 'f'])
>>> idx.str.cat(idz, join='left')
Float64Index([nan, nan, nan], dtype='float64')
```