##### SUMMARY

When using `find` with empty `excludes` list, it excludes **everything**, yet if you remove that empty `excludes` entirely, the `find` behaves correctly (nothing is excluded).

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
find

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
$ ansible --version
ansible 2.9.9
  config file = None
  configured module search path = [u'/home/jmazzite/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /home/jmazzite/source/ansible/lib/ansible
  executable location = /home/jmazzite/source/ansible/bin/ansible
  python version = 2.7.5 (default, Jun 11 2019, 14:33:56) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below

```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->
RHEL 7.7

##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->
Run `find` task with `excludes: [ ]` and see that the results come back empty - everything is excluded. But if you remove that `excludes: [ ]` then find results come back correctly.

<!--- Paste example playbooks or commands between quotes below -->
```yaml
- hosts: localhost
  connection: local
  tasks:
  - find:
      paths: "/etc"
      patterns: ['hosts', 'passwd']
      excludes: []
    register: test
  - debug:
      msg: "number of files found-->{{ test.files | length }}"
  - debug:
      msg: "found-->{{ item.path }}"
    loop: "{{ test.files }}"
```

Run that playbook via `ansible-playbook playbook.yaml` and see the results of find is empty - 0 files are returned:

```
TASK [debug] *****************************************************************************************************************************
ok: [localhost] => {
    "msg": "number of files found-->0"
}
```

Now edit that playbook and completely delete the `excludes: [ ]` line and re-run it. Now see it returns the correct two files:

```
TASK [debug] *****************************************************************************************************************************
ok: [localhost] => {
    "msg": "number of files found-->2"
}

TASK [debug] *****************************************************************************************************************************
ok: [localhost] => (item=...chomp...) => {
    "msg": "found-->/etc/hosts"
}
ok: [localhost] => (item=...chomp...) => {
    "msg": "found-->/etc/passwd"
}

```

<!--- HINT: You can paste gist.github.com links for larger files -->

##### EXPECTED RESULTS

I expect an empty `excludes` list to behave identically as when `excludes` list is completely not specified. An empty excludes list should mean, "I do not want to exclude anything".

##### ACTUAL RESULTS
All files are excluded if I specify an empty list in `excludes` but this is wrong - that should definitely not mean "I want to exclude EVERYTHING".

patterns:
        default: '*'
        description:
            - One or more (shell or regex) patterns, which type is controlled by C(use_regex) option.
            - The patterns restrict the list of files to be returned to those whose basenames match at
              least one of the patterns specified. Multiple patterns can be specified using a list.
            - The pattern is matched against the file base name, excluding the directory.
            - When using regexen, the pattern MUST match the ENTIRE file name, not just parts of it. So
              if you are looking to match all files ending in .default, you'd need to use '.*\.default'
              as a regexp and not just '\.default'.
            - This parameter expects a list, which can be either comma separated or YAML. If any of the
              patterns contain a comma, make sure to put them in a list to avoid splitting the patterns
              in undesirable ways.
        type: list
        aliases: [ pattern ]
        elements: str
    excludes:
        description:
            - One or more (shell or regex) patterns, which type is controlled by C(use_regex) option.
            - Items whose basenames match an C(excludes) pattern are culled from C(patterns) matches.
              Multiple patterns can be specified using a list.
        type: list
        aliases: [ exclude ]
        version_added: "2.5"
        elements: str
    contains:
        description:
            - A regular expression or pattern which should be matched against the file content.
        type: str
    paths: