The predict function is returning an object predicted with a lot of information packed into it, which you can see with your code with str (predicted) Since I don't know what object tree is, I can't give you the specifics (see FAQ: What's a reproducible example (`reprex`) and how do I do one?), but there are whole lot of possible components. Run (from 'help(predict)`
for(fn in methods("predict"))
try({
f <- eval(substitute(getAnywhere(fn)$objs[[1]], list(fn = fn)))
cat(fn, ":\n\t", deparse(args(f)), "\n")
}, silent = TRUE)
In any even [,1] is a "slice" of the second column of the data packed into a list-like object of the result of running the function predict.