Commerce custom field output
Your customColor3a and customColor3b variables will always be defined so you need to check if empty.

{% if item.options.customColor3a is defined and item.options.customColor3a is not empty %} |
    Custom Color 1: {{ item.options.customColor3a }} 
{% endif %}
{% if item.options.customColor3b is defined and item.options.customColor3b is not empty%} |
    Custom Color 2: {{ item.options.customColor3b }} 
{% endif %}