I just spent most of a day bumping into this issue.
Here’s the code that works:
{categories limit="1"}
{if category_id == "12"}
{resource_center_thumb}
{/if}
{if category_id != "12"}
{if "{resource_center_thumb}" !=""}
{resource_center_thumb}
{/if}
{if "{resource_center_thumb}" == ""}
{site_url}images/site_design/bg/{category_image}
{/if}
{/if}
{/categories}It only started working once the field names in the lowest-level conditionals were put in that form. If I tried:
{if resource_center_thumb !=""}
{resource_center_thumb}
{/if}
{if resource_center_thumb == ""}
{site_url}images/site_design/bg/{category_image}
{/if}As I normally code the outer loop didn’t work correctly and all entries returned got handled in the second clause.