A one-liner that would work for your specific example:
>>> string = "['SING', 'Dance'],['Talk', 'Scream'],['Run', 'Walk']"
>>> [x.split(', ') for x in string[1:-1].replace("'", "").split('],[')]
[['SING', 'Dance'], ['Talk', 'Scream'], ['Run', 'Walk']]
This is fragile, because it depends on the strings working exactly as you have them laid out. It applies the following steps:
string[1:-1] - throw out the [ and ] that bracket the string.
replace("'") - throw out all single quotes because they will not help the split.
split('],[') - split the outermost string on the substring that connects the sublists.
[x.split(', ') for x in ... - FOR EACH GENERATED SUBSTRING, split that substring on its internal pair connector - in this case, `.
This is more proof of concept that this can be done, rather than a really good idea. This is a very fragile solution, because any irregularity in spacing or quoting will break it.
A better solution would be to use a regular expression to find the substrings that match lists, get a list of those, and process those into lists.
regex_string = '(?<=\[)[^\]]+(?=\])'
matcher = re.compile(regex_string)
substring_list = matcher.findall(string)
list_of_lists = [x.split(', ') for x in substring_list]