Why do both Text- and Data comparison seem to not work in my Rules conditions?
I am not sure it is your only problem, but for sure you are not correctly using the AND constructs in your rule. It is one of the typical mistakes many Rules users make, but if you want to model a condition like A AND B, then first you must have a line with AND, and that should be followed with A and then also folowed by B. Something like so:

AND
  A
  B


For way more details, refer to my answer to Combining AND and OR in Rules.

So start with fixing this, and then verify if your issue is solved or not.

As a sample, just import this minor variation of your last rule (note I slightly renamed the rule to not overwrite your existing one, and moved the AND construct to where it belongs):

{ "rules_create_a_drupal_user_by_pierre" : {
    "LABEL" : "Create a Drupal User By Pierre",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "REQUIRES" : [ "civicrm", "rules" ],
    "ON" : { "civicrm_membership_create" : [] },
    "IF" : [
      { "AND" : [] },
      { "NOT civicrm_entity_user_exists" : { "civicrm_contact" : [ "civicrm-membership:contact-id-contact" ] } },
      { "data_is" : {
          "data" : [ "civicrm-membership:contact-id-contact:contact-sub-type" ],
          "value" : "Parent"
        }
      }
    ],
    "DO" : [
      { "civicrm_entity_action_create_user" : {
          "USING" : {
            "civicrm_contact" : [ "civicrm-membership:contact-id-contact" ],
            "is_active" : "1",
            "notify" : "0",
            "signin" : "0",
            "username_format" : "email"
          },
          "PROVIDE" : { "civicrm_user" : { "civicrm_user" : "Created Drupal User" } }
        }
      }
    ]
  }
}


If the above still doesn't solve your issue, then I suggest you do some extra Rules debugging as explained in my answer to "How can I display the value of a variable inside a condition?".

Update:

The above (related tot the AND-construct) is for sure "a" reason why it doesn't work. However, yet another issue you may have to correct, is related to what you wrote in a comment below this answer, i.e. this part of it:


  ... The value of the variable is the expected, but I'm not sure if I'm accessing in the right way to the variable, as it's an array: ... (Array, 1 element) 0 (String, 6 characters) Parent


If what you're trying to compare is an array (a "list of values"), then you should NOT (repeat: NOT) use something like a "Data Comparison", because that's like trying to compare an array with a single value (which doesn't make sense). To get your rule to work like you want it to work, you should use the Rules Condition  List contains item. For an example Rule (in Rules export format) in which you can see this at work, refer to the answer to "How to check for product taxonomy term in Rules actions (Ubercart)". In that case it's about a list of taxonomy terms, but the idea is the same.