It's not possible to "make" a type into a subtype of anything using an alias, which is just a new name. While you could use a coproduct, it might be more natural just to create a new type class:
import shapeless._
type t1 = Int :: String :: Int :: HNil
type t2 = String :: String :: Int :: HNil
trait Funnable[A]
implicit object t1Funnable extends Funnable[t1]
implicit object t2Funnable extends Funnable[t2]
def fun[A: Funnable](x: A) = x
Now the lines you want to compile will, and the one you don't won't.