### Summary

When trying to list a package with wildcard using the yum module for RHEL 7 managed node, yum is returning incorrect results. Even if the package is installed on the RHEL7 managed node, yum returns only `"yumstate": "available"` and not   `"yumstate": "installed"`.

The same scenario works as expected on RHEL 8 nodes with a wildcard.


### Issue Type

Bug Report

### Component Name

yum

### Ansible Version

```console
$ ansible --version
ansible 2.9.15
  config file = /root/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.6/site-packages/ansible
  executable location = /bin/ansible
  python version = 3.6.8 (default, Aug 18 2020, 08:33:21) [GCC 8.3.1 20191121 (Red Hat 8.3.1-5)]
```


### Configuration

```console
$ ansible-config dump --only-changed
DEFAULT_HOST_LIST(/root/ansible.cfg) = ['/root/.inventory']
```


### OS / Environment

- RHEL 8 
- RHEL 7

### Steps to Reproduce

<!--- Paste example playbooks or commands between quotes below -->

- If we use a wildcard on a package for RHEL 7 managed node, and if the package we are listing via yum is already installed on RHEL 7, the yum still does not return `"yumstate": "installed"`. It only returns the `"yumstate": "available"`

```
root@ip ~]# ansible rhel7 -i inventory -m yum -a "list=device-mapper*" > s.out
[root@ip ~]# cat s.out | grep installed
````

- If we use the same ansible adhoc command for RHEL 8 host, we get the correct expected result and it returns ``"yumstate": "installed"``

```
[root@ip ~]# ansible rhel8 -i inventory -m yum -a "list=device-mapper*" > s.out
[root@ip ~]# cat s.out | grep installed
            "yumstate": "installed"
            "yumstate": "installed"
```
- Without using a wildcard to the package, everything works as expected on RHEL 7 as well as on RHEL 8.

```
[root@ip~]# ansible rhel7 -i inventory -m yum -a "list=device-mapper" > s.out
[root@ip~]# cat s.out | grep installed
            "repo": "installed",
            "yumstate": "installed"
```

### Expected Results

When running the command mentioned in Steps to Reproduce on RHEL 7, it should return the `"yumstate": "installed"` along with `"yumstate": "available"`

### Actual Results

```console
yum module is not returning the `"yumstate": "installed"` even if the package is already installed on RHEL 7 managed node.
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
""" The need of this entire if conditional has to be changed
                this function is the ensure function that is called
                in the main section.
                This conditional tends to disable/enable repo for
                install present latest action, same actually
                can be done for remove and absent action
                As solution I would advice to cal
                try: self.yum_base.repos.disableRepo(disablerepo)
                and
                try: self.yum_base.repos.enableRepo(enablerepo)
                right before any yum_cmd is actually called regardless
                of yum action.
                Please note that enable/disablerepo options are general
                options, this means that we can call those with any action
                option.  https://linux.die.net/man/8/yum
                This docstring will be removed together when issue: #21619
                will be solved.
                This has been triggered by: #19587
            """
            if self.update_cache:
                self.module.run_command(self.yum_basecmd + ['clean', 'expire-cache'])
            try:
                current_repos = self.yum_base.repos.repos.keys()
                if self.enablerepo:
                    try:
                        new_repos = self.yum_base.repos.repos.keys()
                        for i in new_repos:
                            if i not in current_repos:
                                rid = self.yum_base.repos.getRepo(i)
                                a = rid.repoXML.repoid