There are two parts to your question, showing only nodes that have child terms, and getting the Contextual filter to work.
List only nodes that have child terms
This part of the question can be solved by using a regular Filter
Has taxonomy term and then select only the 2nd level from the list with the Operator set to
is one of.
The same applies if you add a filter
Content: YourTaxonomyField instead of the
Has taxonomy term.
Contextual taxonomy filter
With the main filter taking care of the depth, you don't need the Depth one as the Contextual filter.
Content: Has taxonomy term ID as the Contextual filter. Your example didn't have it set up correctly. It should be:
When the filter value is NOT available
Provide default value
Taxonomy term ID from URL
Only tick Load default filter from node page, that's good for related taxonomy blocks
Filter to items that share any term
Allow multiple values if your nodes can be tagged with more than one term at a time.
Don't forget to place your Block and adjust Block settings for the Contextual filter.