Here is one approach using pandas
.
import pandas as pd
M1 = [['a', 14], ['a', 7], ['a', 16],['b', 3],['b', 15],['c', 22],['c', 1],['c', 5]]
df = pd.DataFrame(M1, columns=['id', 'value'])
df = df.groupby(by='id')['value'].apply(list)
>>> df # already grouped as you want
id
a [14, 7, 16]
b [3, 15]
c [22, 1, 5]
Name: value, dtype: object
Afterwards, you can convert it to a dictionary like so
df = df.to_dict()
>>> df
{'a': [14, 7, 16], 'b': [3, 15], 'c': [22, 1, 5]}
Or a list of lists if you need to
l = [[k] + v for k, v in df.items()]
>>> l
[['a', 14, 7, 16], ['b', 3, 15], ['c', 22, 1, 5]]