char is a character and
sizeof(char) is defined to be 1. (N1570 188.8.131.52 The sizeof and _Alignof operators, paragraph 4)
char* is a pointer to a character and
sizeof(char*) depends on the environment. It is typically 4 in 32-bit environment and 8 in 64-bit environment.
In typical environment where
sizeof(char*) > sizeof(char),
malloc(sizeof(char*)*len + 1) will (at least try to) allocate more memory than
malloc(sizeof(char)*len + 1) if
len is small enough not to cause integer overflow.