Is it possible to convert plain text array to an unordered list?
Something like this should work:

{% set listItems = plainTextValue|replace('/[^, a-zA-Z0-9_-]|[, ]$/s','')|split(',') %}

&lt;ul&gt;
  {% for listItem in listItems %}
    {% if listItem|length %}
      &lt;li&gt;{{ listItem|trim }}&lt;/li&gt;
    {% endif %}
  {% endfor %}
&lt;/ul&gt;


What the above does is to first use the replace filter to remove any character that isn't alphanumeric (except spaces and commas), before the resulting string (which would look something like 'Abdominal Pain,RUQ,Vomiting') is split on the commas. The resulting array is stored in a variable listItems. Finally, it's just a matter of looping through that array, to create the &lt;li&gt; items.

Note that in the above example, plainTextValue is a variable containing the string '["Abdominal Pain","RUQ","Vomiting",""]' – so swap that out with entry.logGeneral_logInputIndications, or whatever fits.

Edit (OP added more info to the original question)

If your "symptoms" are in fact hierarchical, I'd suggest not using a PlainText field at all. You're quickly running into a situation where your back-end solution is way too simple, which will make your front-end solution way too complex.

My definitive recommendation would be to create a Categories group for the symptoms, and swap out the PlainText field for a Categories field.

Note that you can still render the actual symptoms form element on the front end as checkboxes, you'd just pass in an array of category IDs instead of a plain text string (the following example assumes a Categories group with the handle symptoms and a Categories field with the handle selectedSymptoms):

{# Get all available symptoms #}
{% set symptoms = craft.categories.group('symptoms').limit(null) %}

{# Get the symptoms that have been selected for this entry earlier #}
{% set selectedSymptoms = entry.selectedSymptoms.ids() %}

{# Loop through the available symptoms, creating checkboxes #}
{% for symptom in symptoms %}
    &lt;input type="checkbox" name="fields[selectedSymptoms][]" value="{{ symptom.id }}"{% if symptom.id in selectedSymptoms %} checked{% endif %} /&gt;{{ symptom.title }}&lt;br /&gt;
{% endfor %}


...and to display whatever symptoms are already selected – in nested lists, as per the category hiearchy, you can use the {% nav %} tag:

&lt;ul&gt;
{% nav symptom in entry.selectedSymptoms %}
    &lt;li&gt;
        {{ symptom.title }}
        {% ifchildren %}
            &lt;ul&gt;
                {% children %}
            &lt;/ul&gt;
        {% endifchildren %}
    &lt;/li&gt;
{% endnav %}
&lt;/ul&gt;