BUG: find_common_type incorrect for Categorical with NaNs
```
import pandas as pd
from pandas.core.dtypes.cast import find_common_type

left = pd.Index([1, 2, 3, 4])
right = pd.CategoricalIndex([1, None], categories=left)

dtype = find_common_type([left.dtype, right.dtype])

>>> right.astype(dtype)
ValueError: Cannot convert float NaN to integer
```

xref #37930; I expect this would also be relevant for #19371
