Your lambda expression simply is never called, you only define a lambda expression, you can call it with:
firstall ((a,b) : xs) = ((\(a,b) -> a) (a,b) : firstall(xs))
Now since you use a and b in your lambda expression as well, this is asking for trouble, a more accessible version is:
firstall ((a,b) : xs) = ((\(c,d) -> c) (a,b) : firstall(xs))
In other words you "unify" (c,d) with (a,b). You can use a and b in your lambda expression, but it makes things for yourself.
This being said, you can perform this task way easier:
firstall = map fst
which is short for:
firstall = map (\(a,b) -> a)
note that you don't need to specify an input parameter for firstall, since map fst is a function that will take as input a list.
Finally, as @DanielWagner suggests, you can simply drop the lambda expression:
firstall ((a,_) : xs) = (a : firstall(xs))
the underscore (_) means you are not interested in the value: you only need the first element of the tuple.
firstall :: [(a,b)] -> [a]. See what happens when you add that.map fst.