How to extract the first value from a list type metafield?

I think you are saying that the metafield is a list of single line text. You might see the following

# Case 1 - null
# Case 2 - empty list
[]
# Case 3 - single value
["foo"]
Case 4 - multiple values
["foo","bar"]

For final value, instead of:

{% assign final_value = category_info | remove: "[" | remove: "]" | remove: '"' | strip %}

Try:

{% assign final_value_list = category_info | remove: "[" | remove: "]" | split:"," %}
{% for final_value in final_value_list %}{% if forloop.first %}{{ final_value | strip | remove: '"' }}{% endif %}{% endfor %}

This handles case 3 and 4.

Also you probably want to add some hyphens to your tags to strip out new lines around your api call