Original data
The original sample data was:
<g:google_product_category>
Some text on the next line
</g:google_product_category>
For that data, this sed command works:
sed -n '/^<g:google_product_category>/,/^<\/g:google_product_category>/{
/google_product_category/d; p; }'
Don't print by default. Between the lines matching the start and end tags (where the tags are not indented), if the line matches google_product_category, delete it; else print it.
Revised data
Since the question has been revised and the new sample data is:
<g:google_product_category>
Health & Beauty > Personal Care > Cosmetics
</g:google_product_category>
with leading blanks on the tag lines (and a horribly sloppy layout to boot), then the carets ^ which anchor the match to the start of the line are not appropriate. A revised script, therefore, is:
sed -n '/<g:google_product_category>/,/<\/g:google_product_category>/{
/google_product_category/d; p; }'
Don't print by default. Between the lines containing the start and end tags (where the tags are may be indented, and may be preceded by or followed by arbitrary material which will be ignored), if the line matches google_product_category, delete it; else print it.
Given a composite and extended data file like this:
<g:google_product_category>
Some text on the next line
</g:google_product_category>
<g:google_product_category>
Health & Beauty > Personal Care > Cosmetics
</g:google_product_category>
<g:google_category>
Garbage, trash, and delectable goodies.
</g:google_category>
The output from the revised script is:
Some text on the next line
Health & Beauty > Personal Care > Cosmetics
sed. For the limited context you present, it will be OK, but be cautious.