Get all children of custom post type using get_pages

There are a few methods to return all child posts via get_pages().

One fairly straightforward method would be to get all of the IDs of the top-level parent posts, and then pass those IDs to the exclude parameter of get_pages():

<?php
// Get all top-level pcct_product posts;
// The 'parent' => 0 argument returns only
// posts with a parent ID of 0 - that is, 
// top-level posts
$parent_pcct_products = get_pages( array(
    'post_type'    => 'pcct_product',
    'parent'       => 0
) );
// Create an array to hold their IDs
$parent_pcct_product_ids = array();

// Loop through top-level pcct_product posts, 
// and add their IDs to the array we just
// created.
foreach ( $parent_pcct_products as $parent_pcct_product ) {
    $parent_pcct_product_ids[] = $parent_pcct_product->ID;
}

// Get all child pcct_product posts;
// passing the array of top-level posts
// to the 'exclude' parameter
$child_pcct_products = get_pages( array(
    'post_type'    => 'pcct_product',
    'exclude'      => $parent_pcct_product_ids,
    'hierarchical' => false
) );
?>

(Note: untested)

Edit

Try setting hierarchical tofalse`, since we’re excluding all top-level pages.