BUG: Fix construction of Categorical from pd.NA
State: closed

- [x] closes #31927 
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

Labels:
name: MultiIndex
name: Categorical
description: Categorical Data Type
name: NA - MaskedArrays
description: Related to pd.NA and nullable extension arrays

Comments:
also pls run appropriate asvs this is a very performance sensitive path 
> also pls run appropriate asvs this is a very performance sensitive path

Not sure if others have encountered this, but I get a strange error trying to run the benchmark suite:

```
(pandas-dev) danielsaxton> asv continuous -f 1.1 upstream/master na-cat
Traceback (most recent call last):
  File "/Users/danielsaxton/opt/miniconda3/envs/pandas-dev/bin/asv", line 5, in <module>
    from asv.main import main
  File "/Users/danielsaxton/opt/miniconda3/envs/pandas-dev/lib/python3.7/site-packages/asv/__init__.py", line 32, in <module>
    from . import plugin_manager
  File "/Users/danielsaxton/opt/miniconda3/envs/pandas-dev/lib/python3.7/site-packages/asv/plugin_manager.py", line 63, in <module>
    commands.__doc__ = commands._make_docstring()
  File "/Users/danielsaxton/opt/miniconda3/envs/pandas-dev/lib/python3.7/site-packages/asv/commands/__init__.py", line 96, in _make_docstring
    parser, subparsers = make_argparser()
  File "/Users/danielsaxton/opt/miniconda3/envs/pandas-dev/lib/python3.7/site-packages/asv/commands/__init__.py", line 84, in make_argparser
    subparser = commands[str(command)].setup_arguments(subparsers)
  File "/Users/danielsaxton/opt/miniconda3/envs/pandas-dev/lib/python3.7/site-packages/asv/commands/machine.py", line 25, in setup_arguments
    defaults = machine.Machine.get_defaults()
  File "/Users/danielsaxton/opt/miniconda3/envs/pandas-dev/lib/python3.7/site-packages/asv/machine.py", line 146, in get_defaults
    cpu = util.get_cpu_info()
  File "/Users/danielsaxton/opt/miniconda3/envs/pandas-dev/lib/python3.7/site-packages/asv/util.py", line 996, in get_cpu_info
    sysctl = which('sysctl')
  File "/Users/danielsaxton/opt/miniconda3/envs/pandas-dev/lib/python3.7/site-packages/asv/util.py", line 361, in which
    raise IOError("Could not find '{0}' in {1}".format(filename, loc_info))
OSError: Could not find 'sysctl' in PATH
```
BTW (short reaction, will look in more detail at the PR tomorrow), I don't we *can* preserve pd.NA in Categorical: because we can't yet have a Cateogorical with string dtype categories (you can't yet have an Index with nullable dtype).

That's also why I said in the issue that I was not sure it should actually work. Although I assume it is nice that it works and falls back to the normal object dtype backed categorical. But that means we will change behaviour *when* we can actually have a string dtype backed Categorical.
> remove this issue from the PR as this is not correct.

Not sure why that test needed to be removed, as it still tests the behaviour that this PR is enabling. 

See my comment above (https://github.com/pandas-dev/pandas/pull/31939#issuecomment-587171299) about that it is currently not possible to have pd.NA in Categoricals or MultiIndex. So either we are fine with the error you get now (and so this PR is not needed) or either we are fine with it being converted to np.nan (for now), but then we should also test that?

@meeseeksdev backport to 1.0.x