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}}}