In short, the operation '::' is not available on an Int, only on collections.
If you perform '(xs foldLeft ys) _' in the Scala REPL, you see that it results in a function
((List[Int], Int) => List[Int]) => List[Int] = <function1>
So the first operand is the List[Int] and the second an Int.
Note that any operator ending with ':' is special since it is operated on the right side operand using the left as an argument. This is called 'right-associative' whereas the default normally is 'left-associative'.
Therefore 'aList :: anInt' is translated into 'anInt.::(aList)' and this causes the issue since Int does not have a '::' method.
In the 'foldLeft' case you need a left-associative function to add a single element like ':+'. So this then works:
(xs foldLeft ys)(_ :+ _)
Note that the result is quite different from foldRight so be sure to pick to correct one for your situation.