Conditional to override a block
No super easy way around this one, I don't think. You might consider if using blocks is the most appropriate method in this case, or if a simple conditional in the extended template would do the trick:

_layout.html

&lt;nav&gt;
    {% if category is not defined or category.title != 'Smith'%}
       {# Your navigation code here #}
        ...
    {% endif %}
&lt;/nav&gt;


If you want/need to use a block, I think your best option is to put the contents of the extended template's nav block (i.e. the default content for the nav block) in a partial template (e.g. _partials/nav.html), and include it like this in the layout and category templates, respectively:

_layout.html

{% block nav %}
    {% include '_partials/nav' %}
{% endblock %}


category.html

{% block nav %}
    {% if category.title != 'Smith' %}
        {% include '_partial/nav' %}
    {% endif %}
{% endblock %}


Yes, its one more template, but it's the most DRY solution I can think of.