Converting list of string into integers and reshaping the original list
One way:
Replace[l, s_String :> If[StringMatchQ[s, "[" ~~ ___ ~~ "]"],
ToExpression["{" <> StringTake[s, {2, -2}] <> "}"], {s}], {2}]
l /.
s_String :> StringReplace[s, "[" ~~ st___ ~~ "]" :> ToExpression["{" <> st <> "}"]] /.
StringExpression -> Identity /.
s_String :> {s}
{{{"a"}, {1, 2, 3, 4, 5}}, {{"b"}, {6, 7, 8, 9, 10}}}
Also
l1 = l;
l1[[All, 1]] = Map[List]@l[[All, 1]];
l1[[All, 2]] = Map[ToExpression@StringJoin["List", #] &]@l[[All, 2]];
l1
{{{"a"}, {1, 2, 3, 4, 5}}, {{"b"}, {6, 7, 8, 9, 10}}}
l2 = StringReplace[#, {"[" -> "{", "]" -> "}"}] & /@ l;
l2[[All, 1]] = List /@ l2[[All, 1]];
l2[[All, 2]] = ToExpression[l2[[All, 2]]];
l2
{{{"a"}, {1, 2, 3, 4, 5}}, {{"b"}, {6, 7, 8, 9, 10}}}
l3 = MapAt[List, l, {All, 1}];
l3 = MapAt[ToExpression@StringReplace[#, {"[" -> "{", "]" -> "}"}] &, l3, {All, 2}];
l3
{{{"a"}, {1, 2, 3, 4, 5}}, {{"b"}, {6, 7, 8, 9, 10}}}
{{#1}, ToExpression@StringSplit[#2,"["|"]"|","]}&@@@l
alternatively, using regex:
{{#1}, ToExpression@StringSplit[#2,RegularExpression["\W{1}"]]}&@@@l
{{{a}, {1, 2, 3, 4, 5}}, {{b}, {6, 7, 8, 9, 10}}}