BUG: df.merge not working after converting datetime64 object back to object when all fields are None
- [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.

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

---

**Note**: Please read [this guide](https://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports) detailing how to provide the necessary information for us to reproduce your bug.

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

```python
from pandas.api.types import is_datetime64_dtype
import pandas

def convert_to_datetime(df):
    if is_datetime64_dtype(df['Date']) == False:
        df['Date'] = pandas.to_datetime(df['Date'],errors='coerce')
    df['Date'] = df['Date'].astype('object').where(pandas.notnull(df['Date']), None)
    return df

df1 = pandas.DataFrame({'ID':[1,2],'Date':['2014-10-10 10:44:31', None]})
df2 = pandas.DataFrame({'ID':[1,2],'Date':[None, None]})

df1 = convert_to_datetime(df1)
df2 = convert_to_datetime(df2)

merge = df1.merge(df2, how = 'outer' ,indicator=True, validate="one_to_one", copy=False)

```

#### Problem description

expected behavior is to proceed with merge with no error but getting:
```
Traceback (most recent call last):
  File "c:/Users/g/AppData/Local/Programs/Python/Python38/Lib/hcpcs_si_audit/test.py", line 16, in <module>
    merge = df1.merge(df2, how = 'outer' ,indicator=True, validate="one_to_one", copy=False)
  File "C:\Users\g\AppData\Local\Programs\Python\Python38\lib\site-packages\pandas\core\frame.py", line 7336, in merge
    return merge(
  File "C:\Users\g\AppData\Local\Programs\Python\Python38\lib\site-packages\pandas\core\reshape\merge.py", line 83, in merge
    return op.get_result()
  File "C:\Users\g\AppData\Local\Programs\Python\Python38\lib\site-packages\pandas\core\reshape\merge.py", line 667, in get_result
    self._maybe_add_join_keys(result, left_indexer, right_indexer)
  File "C:\Users\g\AppData\Local\Programs\Python\Python38\lib\site-packages\pandas\core\reshape\merge.py", line 815, in _maybe_add_join_keys
    key_col = Index(lvals).where(~mask, rvals)
  File "C:\Users\g\AppData\Local\Programs\Python\Python38\lib\site-packages\pandas\core\indexes\datetimelike.py", line 627, in where
    result = np.where(cond, values, other).astype("i8")
TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
```
