### Summary

When templating something with the `template` module that results in a blank / empty output, the resulting file contains the string `None`.

I noticed when I templated a config file
```
{# comment #}
{% if expression %}

... something ...

{% endif %}
```
and the resulting file contained the four bytes of `None` in the cases where the expression evaluated to `false`.

### Issue Type

Bug Report

### Component Name

template

### Ansible Version

```console
devel
```


### Configuration

```console
-
```


### OS / Environment

-

### Steps to Reproduce

Playbook:
```yaml (paste below)
- hosts: localhost
  tasks:
    - template:
        src: test-template.j2
        dest: test-template.txt
```
test-template.j2:
```
{# test #}
```
Or simply an empty file. Also adding more Jinja2 commands which do not add something to the output yield the same results.

### Expected Results

test-template.txt is blank

### Actual Results

```console
test-template.txt contains the string `None`.
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
def visit_Name(self, node):
        if node.id not in _JSON_MAP:
            return node
        return ast.Constant(value=_JSON_MAP[node.id])
def _fail_on_undefined(data):
    """Recursively find an undefined value in a nested data structure
    and properly raise the undefined exception.
    """
    if isinstance(data, Mapping):
        for value in data.values():
            _fail_on_undefined(value)
    elif is_sequence(data):
        for item in data:
            _fail_on_undefined(item)
    else:
        if isinstance(data, StrictUndefined):
            
            
            
            
            
            
            str(data)
    return data
def ansible_concat(nodes, convert_data, variable_start_string):