Use default([]) para criar uma lista vazia se firewall_allowed_ports for indefinido. O with_items irá ignorá-lo quando estiver vazio.
- name: port {{ item }} allowed in firewall
ufw:
rule: allow
port: "{{ item }}"
proto: tcp
with_items:
- 22
- "{{ firewall_allowed_ports | default([]) }}"