For this one, though, you already know the type signatures of cons and can just generate the constraints one by one for the inputs (much like the table on p. 277 of your textbook):
[[y]] = list ( [[x]] )
[[1]] = [[y]]
Notice that this works regardless of what [[x]] is as long as everything is consistent when unified with all of the other constraints (i.e., you use it consistently).