Your code has a major problem which is the comparison of Strings, you can read more about it in that matter.
Anyway, there are better ways to do what you need:
import java.util.Arrays;
import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import lombok.Data;
import lombok.RequiredArgsConstructor;
public class Main {
    public static void main(String[] args) {
        List<List<Produto>> listaDeListas = Arrays.asList(
                                                Arrays.asList(new Produto("Produto 1"), new Produto("Produto 2")),
                                                Arrays.asList(new Produto("Produto 3")),
                                                Arrays.asList(new Produto("Produto 4"), new Produto("Produto 5"), new Produto("Produto 6")),
                                                Arrays.asList(new Produto("Produto 7"))
                                            );
        // Condição desejada
        Predicate<Produto> filtroProduto = p -> p.getNome().equalsIgnoreCase("Produto 1");
        // Recupera a lista contendo o produto
        List<Produto> listaComOcorrencia = listaDeListas.stream()
                                            .flatMap(List::stream)
                                            .filter(filtroProduto)
                                            .collect(Collectors.toList());
        System.out.println(listaComOcorrencia);
        // Recupera a contagem de produtos com o critério
        long count = listaDeListas.stream()
                        .flatMap(List::stream)
                        .filter(filtroProduto)
                        .count();
        System.out.println(count);
    }
    @Data
    @RequiredArgsConstructor
    public static class Produto {
        private final String nome;
    }
}
The output of the program is:
[Main.Produto(nome=Produto 1)]
1
Where on the first stream, I retrieved the (s) list(s) containing the product, and the Agrupei. 
Probably the second filter is the most interesting, since it only recovers a product count meeting that condition. You can then compare and see if the product has already been put using count != 0.
Anyway, if you DO NOT want duplicates, and do not want to bother comparing if the object already exists, you should use the structure Set, which does not allow duplicates
							
							
						 
You have a list, this list has lists of products, and you want to find the list that has the desired product?
– nullptr
It seems an XY problem, you do not wish to have duplicates?
– nullptr