Try wrapping in @(..)
. It creates always an array:
$Files = @(Get-ChildItem $BackupPath_Root -include *.bak -recurse
| where {$_.CreationTime -le $DelDate_Backup })
if ($Files.length -eq 0) {
write-host " no files to delete."
} else {
..
}