You don't need to instruct CriteriaBuilder to return an Array: it will do the correct job anyway. So, simply change the return type to String and the select statement:
CriteriaQuery query = builder.createQuery(String.class);
Root<MyEntity> root = query.from(MyEntity.class);
query.select(root.get("myRelatedEntities").get("name"));
Query queryCriteria = em.createQuery(query);
List<String> resultRows = queryCriteria.getResultList();
Unrelated: regarding the join, the standard way to make a join is:
Join<MyEntity, MyRelatedEntity> related = root.join("myRelatedEntities");
query.select(related.get("name"));
However it's good to know that your way works altogether!