You can drop geom_line entirely or graph three different lines as shown below.
library(ggplot2)
library(dplyr)
funcao_partes = function(x) {
ifelse (x < -1, -x, ifelse(x > 1, x, -(x^2)))
}
DF <- data.frame(Xval = seq(-2, 2, 0.1), Yval = funcao_partes(seq(-2, 2, 0.1)))
ggplot(mapping = aes(x = Xval, y = Yval, group = 1)) + geom_point(data = DF) +
geom_line(data = filter(DF, Xval >= -1, Xval <= 1)) +
geom_line(data = filter(DF, Xval < -1)) +
geom_line(data = filter(DF, Xval > 1))