I could have just missed it, but I don't think there's currently a way to do whereJsonContains or whereJsonDoesntContain queries with tag conditions? contains and doesnt_contain aways do a string based like comparison.
Perhaps there could be something like:
{{ collection related:json_contains="id" }}
{{ collection related:json_doesnt_contain ="id" }}