Assuming every connection you make is encrypted with TLS (HTTPS) or otherwise encrypted:
If you use encrypted custom DNS, your ISP sees only the IP addresses you connect to. If you use unencrypted DNS or ISP-provided DNS, they see the hostnames plus the IP addresses.
No, only some of their clients are.